iT邦幫忙

2025 iThome 鐵人賽

DAY 0
0
自我挑戰組

使用 DVWA 與 Kali Linux 的攻防學習系列 第 14

【Day 14】DVWA啟動問題(三)

  • 分享至 

  • xImage
  •  

問題三

在成功列出了 /var/www/html/DVWA/database/ 裡的檔案,但裡面沒有原本要匯入的 database.sql,這就是為什麼匯入資料庫會失敗。

什麼會這樣?
目前的 DVWA 版本可能是新版,已經不再使用 database.sql,而是改用其他資料庫格式(像是 SQLite、PostgreSQL 等)。但預設 DVWA 還是使用 MySQL/MariaDB,

確認是否有正確下載 DVWA 官方 GitHub 的版本

是否有完整的 setup.php 流程來建立資料表

  1. 重新下載 DVWA(確保是完整版本)
    bash
    cd /var/www/html
    sudo rm -rf DVWA
    sudo git clone https://github.com/digininja/DVWA.git
    sudo chown -R www-data:www-data DVWA
    sudo chmod -R 755 DVWA
    這樣你會拿到包含 database.sql 的版本。

  2. 確認 config.inc.php 設定為使用 MySQL
    打開 /var/www/html/DVWA/config/config.inc.php,確認這幾行:

php
$_DVWA[ 'db_server' ] = '127.0.0.1';
$_DVWA[ 'db_database' ] = 'dvwa';
$_DVWA[ 'db_user' ] = 'dvwa';
$_DVWA[ 'db_password' ] = 'dvwa';
3. 重新啟動 Apache 和 MySQL
bash
sudo service apache2 restart
sudo service mysql restart

  1. 打開瀏覽器執行 DVWA 安裝

程式碼
http://127.0.0.1/DVWA/setup.php
點選「Create / Reset Database」,這次應該就能成功建立資料表了 🎯

https://ithelp.ithome.com.tw/upload/images/20251013/20173483uSKZd7B739.png

已經成功重新下載了完整的 DVWA 原始碼,並正確設定了權限:

bash
sudo chown -R www-data:www-data DVWA
這一步非常關鍵,因為它讓 Apache 能夠正確讀取和執行 DVWA 的檔案。

下一步檢查清單(確保一切就緒)
確認 config.inc.php 設定正確:

打開 /var/www/html/DVWA/config/config.inc.php,確認這幾行:

php
$_DVWA[ 'db_server' ] = '127.0.0.1';
$_DVWA[ 'db_database' ] = 'dvwa';
$_DVWA[ 'db_user' ] = 'dvwa';
$_DVWA[ 'db_password' ] = 'dvwa';
重新啟動 Apache 和 MySQL:

bash
sudo service apache2 restart
sudo service mysql restart
打開瀏覽器,輸入:

程式碼
http://127.0.0.1/DVWA/setup.php
點選「Create / Reset Database」按鈕,這次應該就能順利建立資料表!

如果你還是看到空白畫面,我可以幫你:

檢查 Apache 錯誤日誌

手動匯入 database.sql

測試登入頁面是否可用

已經打開了 nano 編輯器,但目前看起來你可能是打開了 /var/www/html/DVWA/ 這個資料夾,而不是具體的設定檔 config.inc.php。這就是為什麼畫面看起來空白。

正確打開方式:
在終端機輸入這一行:

bash
sudo nano /var/www/html/DVWA/config/config.inc.php
這樣就會直接打開 DVWA 的設定檔,而不是整個資料夾。

🔍 編輯時請確認這幾行:
php
$_DVWA[ 'db_server' ] = '127.0.0.1';
$_DVWA[ 'db_database' ] = 'dvwa';
$_DVWA[ 'db_user' ] = 'dvwa'; // 或 'root',看你用哪個帳號
$_DVWA[ 'db_password' ] = 'dvwa'; // 或 'p@ssw0rd',看你設定的密碼
如果你是用 root 登入 MariaDB,就把 db_user 和 db_password 改成對應的值。

https://ithelp.ithome.com.tw/upload/images/20251013/20173483PH0B3Is1r1.png
儲存方式(nano 編輯器)
編輯完後按下:Ctrl + O(儲存)

然後按 Enter(確認檔名)

最後按 Ctrl + X(離開)

https://ithelp.ithome.com.tw/upload/images/20251013/20173483jxb3A7iGSU.png

https://ithelp.ithome.com.tw/upload/images/20251013/20173483mBzWq3T3qT.png
現在的狀況是:

資料庫 dvwa 已經存在

使用者 dvwa@localhost 嘗試建立時出現錯誤:ERROR 1396 (HY000): Operation CREATE USER failed

這表示該使用者可能已經存在但沒有權限,或是建立過但沒有正確清除。

✅ 解法:先刪除再重新建立
請在 MariaDB 裡執行以下指令:

sql
DROP USER IF EXISTS 'dvwa'@'localhost';
CREATE USER 'dvwa'@'localhost' IDENTIFIED BY 'dvwa';
GRANT ALL PRIVILEGES ON dvwa.* TO 'dvwa'@'localhost';
FLUSH PRIVILEGES;
這會:

刪除舊的 dvwa 使用者(如果存在)

建立新的使用者並設定密碼

給予完整權限

更新權限設定


上一篇
【Day 13】DVWA啟動問題(二)
下一篇
【Day 15】Kali啟動問題(一)
系列文
使用 DVWA 與 Kali Linux 的攻防學習17
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言